// Request.h
//
// A request from one part of the system to another.
//

#ifndef __REQUEST_H__
#define __REQUEST_H__

#include "base/Entity.h"
#include "base/Packet.h"
#include "util/Pool.h"

/**
   A request from one part of the system to another.  

   This class should be extended for particular request types, and
   should probably not be used itself.  A request typically requires
   some Response to be sent back from the dest to the src.
*/

class Request : public Packet {
  public:
    NEW_DELETE_OPERATORS_H(Request,Packet);
    Request(Entity* src, Entity* dest) :
        Packet(src, dest, 1)
    { };
    Request(Entity* src, Entity* dest, uint size) :
        Packet(src, dest, size)
    { };
    virtual ~Request() { };
};

#endif // __REQUEST_H__

